feat: follow up Claude Code, Codex CLI, and Goose upstream updates - #1770
Merged
Conversation
Resolves three maintainer-scrap follow-ups in one batch: #1740 (Claude Code): add ws + streamable-http MCP transports to McpServerSchema type/transport enums; add the messageDisplay canonical hook event with the Claude MessageDisplay mapping; add first-class disallowed-tools frontmatter to Claude Code slash commands and skills (round-trips via the claudecode section). #1741 (Codex CLI): emit an agents/openai.yaml sidecar next to SKILL.md from a new codexcli interface/policy/dependencies frontmatter section, route the user-facing short description to interface.short_description, and read the sidecar back on import. SKILL.md frontmatter stays name + description only; legacy metadata.short-description is preserved. #1742 (Goose): add a Goose lifecycle hooks adapter that writes .agents/plugins/rulesync/hooks/hooks.json (project + global), register it in hooks-processor with GOOSE_HOOK_EVENTS and canonical mappings, gitignore the plugin dir, and sync README/docs. Closes #1740 Closes #1741 Closes #1742 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…h project conventions Address /review-pr mid-severity findings on PR #1770: - Add "messageDisplay" to CLAUDE_NO_MATCHER_EVENTS so the matcher field is dropped (with a warning) when present. Per the Claude Code hooks docs, MessageDisplay does not support a matcher and silently ignores it. Add a converter test asserting the matcher is dropped, and update the no-matcher note in both file-formats docs. - Pass { lineWidth: -1, noRefs: true } to js-yaml dump() when emitting the Codex agents/openai.yaml sidecar, matching the project-wide dump convention and avoiding line-folding of long URLs/descriptions. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
dyoshikawa
pushed a commit
that referenced
this pull request
Jun 9, 2026
Resolve conflicts from upstream Goose hooks (#1770) and Agent Skills (#1775): - src/types/hooks.ts: keep both new HookEvent members (workspaceOpen + messageDisplay) - src/features/skills/rulesync-skill.ts: keep both new skill sections (cursor + agentsskills) in schema and input type - docs/reference/file-formats.md: merge the hook matrix to 16 columns (incl. Goose), re-applying #1774's changes (workspaceOpen row, deepagents notification, Factory Droid permissionRequest/setup cleanup) on top of the upstream messageDisplay row; regenerate skills/rulesync/file-formats.md via the docs sync script Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Resolves three
maintainer-scrapfollow-up issues (upstream updates) in one batch.#1740 — Claude Code:
disallowed-tools,MessageDisplayhook, MCPws/streamable-httpwsandstreamable-httpto thetypeandtransportenums inMcpServerSchema(src/types/mcp.ts).streamable-httpis the MCP spec's alias ofhttp;wsis the WebSocket transport (sameurl/headers/headersHelper/timeoutfields ashttp). Both were previously rejected bysafeParse.MessageDisplayhook — added the canonicalmessageDisplayevent plus themessageDisplay → MessageDisplaymapping, and listed it inCLAUDE_HOOK_EVENTS.disallowed-tools— added first-classdisallowed-toolsfrontmatter (string or list) to Claude Code slash commands and skills. It round-trips through theclaudecodefrontmatter section.#1741 — Codex CLI: emit
agents/openai.yamlsidecarcodexclifrontmatter section carryinginterface/policy/dependencies. When present,CodexCliSkillemits.codex/skills/<name>/agents/openai.yamland reads it back on import.interface.short_description(the canonical home per Codex docs); the legacycodexcli.short-description→SKILL.mdmetadata.short-descriptionmapping is preserved for backward compatibility.SKILL.mdfrontmatter staysname+descriptiononly.#1742 — Goose: lifecycle Hooks adapter
GooseHooks(src/features/hooks/goose-hooks.ts) emitting.agents/plugins/rulesync/hooks/hooks.json(project) and the same path under~(global), following the Open Plugins spec auto-discovery convention.gooseinhooks-processorwithGOOSE_HOOK_EVENTSand canonical mappings for the 11 supported events (SessionStart,SessionEnd,Stop,UserPromptSubmit,PreToolUse,PostToolUse,PostToolUseFailure,BeforeReadFile,AfterFileEdit,BeforeShellExecution,AfterShellExecution).**/.agents/plugins/) and synced README / docs.Validation evidence (primary sources)
ws+streamable-httpanddisallowed-tools/MessageDisplay(v2.1.152): https://code.claude.com/docs/en/mcp , https://code.claude.com/docs/en/changelog , https://code.claude.com/docs/en/hooksagents/openai.yamlschema (interface/policy/dependencies;SKILL.mdonlyname+description): https://developers.openai.com/codex/skills.mdhooks.jsonshape,.agents/plugins/<name>/hooks/hooks.jsonlocation): https://goose-docs.ai/blog/2026/05/14/goose-hooks/Test plan
pnpm cicheck— green (fmt, oxlint, typecheck, 6009 unit tests, sync-skill-docs, cspell, secretlint).messageDisplaymapping, command/skilldisallowed-toolsround-trip, Codexagents/openai.yamlemit + round-trip,GooseHooksgenerate/import.gooseto the hooks Tool × Feature happy-path matrix (generate / import / global) —e2e-hooks,e2e-skills,e2e-gitignoreall pass.Closes #1740
Closes #1741
Closes #1742